var DataType = {
    serialize: function(v) {
        return String(v);
    },
    parse: function(v) {
        if (typeof v === 'string') {
            v = JSON.parse(v);
        }
        if (isFinite(v.x) && isFinite(v.y) && isFinite(v.width) && isFinite(v.height)) {
            return {width: v.width, height: v.height};
        } else {
            gg.error('datatype error');
        }
    },
    'merge': function(a, b) {
        var x, y, w, h;
        x = Math.min(a.x, b.x);
        y = Math.min(a.y, b.y);
        w = Math.max(a.x + a.width, b.x + b.width);
        h = Math.max(a.y + a.height, b.y + b.height);
        return {x:x, y:y, width:w, height:h};
    }
};

module.exports = DataType;